HyperCard version 1.2.2 is a maintenance release with a number of bug fixes, better support for foreign languages and a few small enhancements.




These notes contain information of interest to stack designers and programmers that are not covered in the general HyperCard Version 1.2.2 Release Notes stack.  The HyperCard version 1.2.2 Programmer's Notes  include the following:



¥    Script Examples and detailed explanations of enhancements


¥    Explanations of bug fixes




Briefly, HyperCard 1.2.2 includes the following:



¥    Improved support for display and printing of Japanese, Arabic and other
     non-Roman languages


¥    Improvements in handling sound (in conjunction with Sound Manager fixes
     in System 6.0.2)


¥    Overall improved robustness in low memory situations


¥    Parameters returned by HyperCard's Find command have been enriched and
     are more accurate


¥    A variety of bug fixes


NOTE:  Developers who plan to license and ship HyperCard with their products outside the United States should use version z1.2.2, which contains a special resource for handling non-U.S. date, currency and other number formats.  Contact Apple Software Licensing for details on distributing HyperCard with third party products.


Enhancements:

------------------------------------------------------------------------------

¥¥¥      Pasting fields with the Shift key down

If the Shift key is pressed while pasting a field,  HyperCard 1.2.2 will paste the field AND put the text of the copied or cut field into it.
Whether pasting a field into a card or background, text for the current card will be put into the pasted field.   Copying and pasting a field with the Shift key can be done in a HyperTalk handler as follows:

on mouseUp
  select cd fld 1
  doMenu "Copy Field"
  go next card
  type "V" with commandKey,shiftKey -- paste it with the shiftKey down
  choose browse tool
end mouseUp

NOTE:  The doMenu command cannot be used to shift-paste a field as it takes only one argument



¥¥¥      Placing a Paint graphic while drawing

HyperCard 1.2.2  allows rectangles, ovals, and regular polygons be placed (by sliding them around the screen) while they are being created.

With the rectangle, round rectangle, oval, or regular polygon tool chosen the user drags the mouse to stretch out the shape.   Without releasing the mouse button,  pressing the Command key will stop stretching, and allow sliding the graphic. Releasing the Command key resumes stretching.

This capability is only available while the user is working with the painting tools, keyboard and mouse directly; it cannot be programmed in a HyperTalk handler.


¥¥¥   Faster navigation

Going to the previous card for a specified background is faster.   For example:

on mouseUp
   go to previous card of bkgnd "Foo"
end mouseUp





Support for Foreign Languages:

------------------------------------------------------------------------------

¥¥¥      Right justified and right-to-left text

HyperCard 1.2.2 correctly frames (draws the box around) text found by HyperCard's Find commands when text is left, center or right justified, and when operating in languages which read right-to-left.
Reset Paint will use right justification for Paint text if right-to-left text has been set by the Script Manager.  This restores the defaults to what would be expected on a Kanji, Arabic or Hebrew language system. 


¥¥¥      Printing

HyperCard 1.2.2 will print Kanji characters in high quality mode on the ImageWriter II and ImageWriter LQ printers.
HyperCard 1.2.2 uses the default font set by the Script Manager for printing reports.   




Bug Fixes:

------------------------------------------------------------------------------

¥¥¥      Behavior in low memory conditions

HyperCard 1.2.2 has a fix for the operating system Scrap Manager to help it when memory is running low.  When cutting or copying a HyperCard object or graphic under low memory conditions (i.e. as would be created by repeated copying and pasting on a 1 MB system),  HyperCard could sometimes receive a corrupted copy of the object when it was pasted by a user or HyperTalk handler.  This bad copy could cause the system to hang or corrupt the HyperCard stack being used.  This fix, along with several smaller ones, make HyperCard 1.2.2 much more robust when running on a 1 Megabyte Macintosh, or in a small partition under MultiFinder.


¥¥¥   Appending Scripts

Sometimes when memory was running low the beginning of a stack script was lost when another handler attempted to append something to the end of the script.  This has been fixed.


¥¥¥      Sound on 1 Megabyte systems, Mac Plus and SE

System 6.0.2 fixed a number of small problems with recent releases of the Macintosh Sound Manager.  HyperCard 1.2.2 has a fix for gaining and releasing the sound channel which supports desk accessories, modal dialogs or other software that use sounds.  This eliminated known sound problems including system hangs and occasional clicks and pops on the Macintosh Plus and SE, and provides better handling of synthesized and digitized sounds in general.


¥¥¥      The "Find" command

Getting parameters for a Find command is now fully implemented, so HyperCard 1.2.2 returns more information when asked for Òthe paramsÓ.  These improvements allow stack designers to intercept a Find command, examine it in detail, then modify, terminate, execute or override it inside a handler.
HyperCard 1.2.2 returns the string to be found with quotes (which can be important for conditional HyperTalk statements to multi-word searches), and also returns a complete field expression, instead of just Ò<field>Ó. 
For example, if the command:
find whole "My Name" in bkgnd fld "Foo"
were intercepted by the handler:

on Find
   send the params to HyperCard
   if the result is empty then exit find
   lock screen   
   push card
   go to stack "server:Address"
   send the params to HyperCard  -- search in this stack too
   if the result is empty then exit find
   pop card  -- return to original stack
end Find

inquiring about Òthe paramsÓ would return the following literal results:

find whole My Name in <field> -- for version 1.2.1 and earlier
find whole "My Name" in bkgnd field 2 -- for version 1.2.2

NOTE:  If the Find command contains a field name (e.g. bkgnd fld ÒFooÓ), HyperCard converts the name into the field number (e.g. bkgnd field 2).
  
A simpler command like:

find "My Name"

would return:

find 0 My Name -- for version 1.2.1 and earlier  
find normal "My Name" -- for version 1.2.2

NOTE:  In simple Find commands, version 1.2.2 returns ÒnormalÓ in the second item (instead of Ò0Ó), indicating the Find command was not followed by modifiers like ÒwholeÓ or ÒstringÓ.


¥¥¥   Closing open fields at the start of a Find command

HyperCard now closes the currently open field (one where there is a flashing cursor) when a search is initiated via the Find command.  This should eliminate situations where Find would return an invalid result.



¥¥¥      Sending the Choose message

In earlier versions, when the user clicked on a tool in the tool windoid, HyperCard did not send the Choose message.  Now it does.  This is useful when a designer wants to figure out which tool the user has chosen from the palette.  For example:

on choose what,whichTool
   if what is "tool" and whichTool is "7" then beep
     -- beep when the brush tool is chosen
   pass choose -- do it
end choose

NOTE:  The Choose message passes the word "tool" and a number, not a tool name.


¥¥¥      Scrolling fields

The scrollbar is now updated after cutting or deleting text from a scrolling field, so the field can now be scrolled back to the top with the mouse after cutting or deleting text from the bottom . 
Text Arrows now update the scrollbar and scroll setting properly.  Previous versions did not update the scrollbar when text arrows were used to scroll up and down the field.


¥¥¥      Painting tools with hidden pictures

If the picture is hidden you can no longer get "marching antsÓ by double-clicking the selection tool.
If the picture is hidden you can no longer set an insertion point by choosing the text tool and clicking the mouse.


¥¥¥      Typing in locked stacks

A bug in HyperCard 1.2.1  allowed users to type carriage returns into fields in a locked stack, even though the userModify property was set to false.  This has been fixed.


¥¥¥      Working with custom FOND resources

A bug allowed a custom FOND attached to a stack to be purged, but a Font Manager global still referred to it.  This could corrupt HyperCard's heap; it has been fixed.


¥¥¥      Font substitution with the ImageWriter LQ

If the 3x fonts for the ImageWriter LQ are available, HyperCard will now use them.



¥¥¥      Going to other stacks while deleting a card

Earlier versions of HyperCard would result in an Unexpected Error #1250 or #1260 if a user (via a script) left the stack in a delete or openCard handler.  This has been fixed.


¥¥¥      Copying the selection

Earlier versions of HyperCard accidentally copied the entire text of a source container when a handler requested that the selection (highlighted text) be put after the contents of a destination container.  Version 1.2.2 fixes this.


¥¥¥      the diskSpace

The diskSpace property now returns the correct available diskspace when it's more than 32 megabytes. 


¥¥¥      Visual effects on "E-Machines" type large monitors

Visual effects now work with monitors which change low memory screen globals.  


¥¥¥      Flush mouseUp event before sending the mouseUp message

When a button was clicked on and the message was sent prior to the event being removed from the queue, XCMDs were getting confused by the extra event.  This is fixed.  


¥¥¥      Suspend/Resume

In some sublaunch situations where the user had to find the application with Standard File, a bug resulted in weird looking screens on return to HyperCard.  This has been fixed.

